<?php

include 'configBbdd.php';

function conectarUsuarios() {
        session_start();
        global $conexion;
        include 'configBbdd.php';
        if ($conexion = mysql_connect($server, $usuario , $pass))
        {
            mysql_set_charset('utf8');
            mysql_select_db($bbdd,$conexion);
            return $conexion;
        } else {
            return null;
        }
        
	//Seleccionar la BD a utilizar
	//or die (mysql_error());
}

function login($email, $pass) {
    
    try {
    
        $sql = "SELECT * FROM usuarios WHERE email='".$email."' and pass='".$pass."'";
    
        $result = mysql_query($sql,conectarUsuarios()); 
    
        //Si existe al menos una fila
        
        $fila = mysql_fetch_array($result);
        
        return $fila;
       
    } catch(Exception $e) {
        return null;
    }
}

function datosUsuarioSesion() {   
    $sql = "SELECT * FROM usuarios WHERE idusuario='".$_SESSION['uid']."'";
    $result = mysql_query($sql, conectarUsuarios()); 
    
    if ($fila = mysql_fetch_array($result))
    {
        return $fila;
    } else {
        return null;
    }
}

function datosUsuario($uid) {
    $sql = "SELECT usuarios.nombreArtistico,
                   usuarios.nombre as nombreUsuario,
                   usuarios.apellidos,
                   usuarios.foto,
                   usuarios.web,
                   usuarios.videobook,
                   usuarios.valoracionMedia,
                   usuarios.cantidadValoraciones,
                   usuarios.fechaNacimiento,
                   usuarios.idSexo,
                   usuarios.telefonoVisible,
                   usuarios.idMunicipio,
                   provincias.idProvincia,
                   municipios.nombre as nombreMunicipio,
                   provincias.nombre as nombreProvincia,
                   usuarios.email,
                   usuarios.telefono,
                   usuarios.descripcion,
                   usuarios.idUsuario,
                   usuarios.facebook,
                   usuarios.twitter,
                   usuarios.googleplus,
                   usuarios.youtube,
                   usuarios.linkedin,
                   usuarios.pinterest,
                   (YEAR(CURDATE())-YEAR(fechaNacimiento))-(RIGHT(CURDATE(),5)<RIGHT(fechaNacimiento,5))AS edad 
            FROM usuarios 
            INNER JOIN municipios on usuarios.idMunicipio = municipios.idMunicipio           
            INNER JOIN provincias on municipios.idProvincia = provincias.idProvincia 
            WHERE usuarios.idUsuario =".$uid;
    
    $result = mysql_query($sql, conectarUsuarios());
    
    if ($fila = mysql_fetch_array($result)) {
        return $fila;
    } else {
        return null;
    }
}

function datosUsuarioModificar($uid) {
    $sql = "SELECT usuarios.nombre as nombreUsuario,"
            . "usuarios.idUsuario,"
            . "usuarios.apellidos,"
            . "usuarios.descripcion,"
            . "usuarios.telefono,"
            . "usuarios.email,"
            . "usuarios.videobook,"
            . "usuarios.web,"
            . "usuarios.fechaNacimiento,"
            . "usuarios.fotoThumb,"
            . "usuarios.foto,"
            . "usuarios.idSexo,"
            . "provincias.nombre as nombreProvincia,"
            . "municipios.nombre as nombreMunicipio,"
            . "usuarios.idMunicipio,"
            . "usuarios.idProvincia "
          ." FROM usuarios "
          ."INNER JOIN provincias ON usuarios.idProvincia = provincias.idProvincia "
          ."INNER JOIN municipios ON usuarios.idMunicipio = municipios.idMunicipio "
          ."WHERE idUsuario = ".$uid;
    
    $result = mysql_query($sql, conectarUsuarios());
    
    if ($fila = mysql_fetch_array($result)) {
        return $fila;
    } else {
        return null;
    }
}

function insertarUsuario() {
    $passMD5 = md5($_POST['reg_pass']);
    $code = sha1(mt_rand().time().mt_rand().$_SERVER['REMOTE_ADDR']);
    if ($_POST['sexo']==1){
        $foto = "img/usuarios/hombre.jpg";
        $fotoThumb = "img/usuariosThumbnail/hombre.jpg";
    } else {
        $foto = "img/usuarios/mujer.jpg";
        $fotoThumb = "img/usuariosThumbnail/mujer.jpg";
    }
    
    $anyo=$_POST['anyo'];
    $mes=$_POST['mes'];
    $dia=$_POST['dia'];
    
    
    $fechaNacimiento = $anyo."-".$mes."-".$dia;
    
    $sql = "INSERT INTO usuarios "
            . "(nombre, apellidos, email, pass, descripcion, idprovincia, idmunicipio, codActivacion, idSexo, foto, fechaNacimiento) "
            . "VALUES ('".$_POST['nombre']."','".$_POST['apellidos']."','".$_POST['reg_email']."','".$passMD5."','".$_POST['descripcion']."',".$_POST['idProvincia'].",".$_POST['idMunicipio'].",'".$code."',".$_POST['sexo']
            .",'".$foto."','".$fechaNacimiento."')"; 
    
    if (mysql_query($sql, conectarUsuarios()))
    {
        return $code;
    } else {
        echo 'ERROR al insertar';
    }
}

function comprobarCorreo($correo) {
    
    $sql = "SELECT * FROM usuarios WHERE email = '".$correo."'";
    $result = mysql_query($sql, conectarUsuarios());
    
    $fila = mysql_fetch_array($result);
    if ($fila) {
        return true;
    } else {
        return false;
    }
}

function activarCuenta($code) {
    
    $sql = "UPDATE usuarios
            SET usuarios.activo='SI', usuarios.codActivacion = null
            WHERE usuarios.codActivacion='".$code."'";
    if (mysql_query($sql, conectarUsuarios())) {
        if (mysql_affected_rows() > 0) {
            return true;
        } else {
            return false;
        }
    } else {
        echo 'ERROR al insertar';
    }
}

function reactivarCuenta($email) {
    
    $sql = "UPDATE usuarios 
            SET usuarios.baja=0 
            WHERE usuarios.email='".$email."'";
    if (mysql_query($sql, conectarUsuarios())) {
        if (mysql_affected_rows() > 0) {
            return true;
        } else {
            return false;
        }
    } else {
        echo 'ERROR al insertar';
    }
}

function obtenerPerfil($idUsuario) {
    try {
        $sql = "SELECT idPerfil FROM usuarios"
                . " WHERE usuarios.idUsuario = ".$idUsuario; 
        $result = mysql_query($sql, conectarUsuarios());

        if ($fila = mysql_fetch_array($result)) {
            return $fila['idPerfil'];
        } else {
            return false;
        }
    } catch (Exception $e) {
        return false;
    }
}

function modificarPerfil($datos) {
    try {
        $sql = "UPDATE usuarios SET"
                . " nombreArtistico ='".$datos['nombreArtistico']."',"
//                . " nombre ='".$datos['nombre']."',"
//                . " apellidos ='".$datos['apellidos']."',"
                . " email = '".$datos['email']."',"
                . " telefono = '".$datos['telefono']."',"
                . " web = '".$datos['web']."',"
                . " videobook = '".$datos['videobook']."',"
                . " descripcion = '".$datos['descripcion']."',"
                . " idProvincia = ".$datos['idProvincia'].","
                . " idMunicipio = ".$datos['idMunicipio'].","
                . " fechaNacimiento = '".$datos['fecha']."',"
                . " telefonoVisible = '".$datos['visibilidad']."',"
                . " idSexo = ".$datos['sexo'].""
                . " WHERE idUsuario = ".$datos['idUsuario'];
        if (mysql_query($sql, conectarUsuarios())) {
            if (mysql_affected_rows() > 0) {
                return true;
            } else {
                return false;
            }
        } 
    } catch (Exception $e) {
        return false;
    }
}

function sonContacto($uid1, $uid2) {
    
    try {
        //Comprobamos si son contacto
        $sql = "SELECT * FROM contactos WHERE (idUsuario1 = ".$uid1." AND idUsuario2 = ".$uid2.")";

        $result = mysql_query($sql, conectarUsuarios());
        if (mysql_fetch_array($result)) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        return false;
    }
}


function crearContacto($uid1, $uid2) {
    
    try {
        
        //Comenzamos la transacción.
        $sql = "START TRANSACTION; ";
        mysql_query($sql, $conecta);
        
        //Creamos el contacto entre ambos en los dos sentidos
        $sql = "INSERT INTO contactos (idUsuario1,idUsuario2) VALUES (".$uid1.",".$uid2.")";

        mysql_query($sql, conectarUsuarios());
        
        $sql = "INSERT INTO contactos (idUsuario1,idUsuario2) VALUES (".$uid2.",".$uid1.")";

        mysql_query($sql, conectarUsuarios());
        
        
        //Añadimos la notificación al usuario solicitante
        $sql = "INSERT INTO solicitudesContacto (idUsuarioSolicitante,idUsuarioSolicitado) VALUES (".$uid2.",".$uid1.")";

        mysql_query($sql, conectarUsuarios());
       
        //Si todo está correcto, hacemos Commit y cerramos la transacción.
        $sql = " COMMIT; ";
        mysql_query($sql,conectarUsuarios());
        
        return true;
        
    } catch (Exception $e) {
        //Si ha habido algún error, desacemos las consultas lanzadas durante la transacción.
        $sql = " ROLLBACK; ";
        mysql_query($sql,conectarUsuarios());
        
        return false;
    }
}

function numeroContactos($uid) {
    try {
        $sql = "SELECT COUNT(*) as cantidad FROM contactos WHERE idUsuario1 = ".$uid." OR idUsuario2 = ".$uid;
        $result = mysql_query($sql, conectarUsuarios()); 
        if ($contactos = mysql_fetch_array($result)) {
            return $contactos;
        } else {
            return false;
        }
        
    } catch (Exception $ex) {
        echo 'ERROR';
        return false;
    }
}

function obtenerContactos($uid) {
    
    try {
        
        $sql = "SELECT contactos.idContacto,
                       contactos.idUsuario2 AS idUsuario,
                       usuarios.nombreArtistico,
                       usuarios.nombre,
                       usuarios.apellidos,
                       usuarios.foto,
                       usuarios.idPerfil,
                       usuarios.idSexo as sexo,
                       usuarios.valoracionMedia,
                       usuarios.cantidadValoraciones,
                       provincias.nombre as nombreProvincia,
                       municipios.nombre as nombreMunicipio,
				(YEAR(CURDATE())-YEAR(fechaNacimiento))-(RIGHT(CURDATE(),5)<RIGHT(fechaNacimiento,5))AS edad 
                FROM contactos
                INNER JOIN usuarios on usuarios.idUsuario = contactos.idUsuario2
                INNER JOIN municipios on usuarios.idMunicipio = municipios.idMunicipio
                INNER JOIN provincias on usuarios.idProvincia = provincias.idProvincia
                WHERE contactos.idUsuario1 = ".$uid." and usuarios.baja = '0' AND usuarios.activo = 'SI' AND usuarios.bloqueado = 0";

        $result = mysql_query($sql, conectarUsuarios()); 
        $i=0;
        
        //incluir la lógica de negocio aquí, y no llevarla a la capa de presentación. Solo un nombre, unos apellidos y una foto de
        //los usuarios se guardarán en el Array Miscontactos. Aunque esto debería poderse arreglar mediante la select.
        
        while ($contacto = mysql_fetch_array($result)) {
           $misContactos[$i] = $contacto;
           $i++;
        } 
        
        return $misContactos;

    } catch (Exception $e) {
        return false;
    }
}

function obtenerContactosComodin($uid,$comodin) {
    
    try {
        
        $sql = "SELECT contactos.idContacto,
                       contactos.idUsuario2 AS idUsuario,
                       usuarios.nombreArtistico,
                       usuarios.nombre as nombre,
                       usuarios.apellidos as apellidos,
                       usuarios.fotoThumb as fotoThumb,
                       usuarios.foto as foto,
                       usuarios.idSexo as sexo,
                       usuarios.valoracionMedia as valoracionMedia,
                       provincias.nombre as nombreProvincia,
                       municipios.nombre as nombreMunicipio,
				(YEAR(CURDATE())-YEAR(fechaNacimiento))-(RIGHT(CURDATE(),5)<RIGHT(fechaNacimiento,5))AS edad 
                FROM contactos
                INNER JOIN usuarios on usuarios.idUsuario = contactos.idUsuario2
                INNER JOIN municipios on usuarios.idMunicipio = municipios.idMunicipio
                INNER JOIN provincias on usuarios.idProvincia = provincias.idProvincia
                WHERE usuarios.nombre LIKE '".$comodin."%'  
                and contactos.idUsuario1 = ".$uid." AND usuarios.baja = 0 AND usuarios.activo = 'SI' AND usuarios.bloqueado = 0";

        $result = mysql_query($sql, conectarUsuarios()); 
        $i=0;
        
        //incluir la lógica de negocio aquí, y no llevarla a la capa de presentación. Solo un nombre, unos apellidos y una foto de
        //los usuarios se guardarán en el Array Miscontactos. Aunque esto debería poderse arreglar mediante la select.
        
         while ($contacto = mysql_fetch_array($result)) {
           $misContactos[$i] = $contacto;
           $i++;
        } 
        
        return $misContactos;

    } catch (Exception $e) {
        
        return false;
        
    }
}

function obtenerRolesUsuario ($uid) {
    try {
        $sql = "SELECT roles.idRol, roles.descripcion as descripcionRol, tipoPlan.idtipoPlan as idTipoProyecto, tipoPlan.descripcion as descripcionTipoProyecto, tipoPlan.imagen, tipoPlan.imagenDark
                FROM roles 
                INNER JOIN usuariosRoles ON roles.idRol = usuariosRoles.idRol
                INNER JOIN usuarios ON usuarios.idUsuario = usuariosRoles.idUsuario
                INNER JOIN tipoPlan ON tipoPlan.idtipoPlan = roles.idTipoPlan
                WHERE usuarios.idUsuario = ".$uid." ORDER BY idTipoProyecto";
        $result = mysql_query($sql, conectarUsuarios()); 

        $i=0;
        while ($datosContacto = mysql_fetch_array($result)) {
           $datos[$i] = $datosContacto;
           $i++;
        }
        return $datos;
    } catch (Exception $e) {
        return null;
    }   
}

function valorarUsuario($uid,$comentario,$estrellas){
    
    session_start();
    //Actualizamos la tabla valoracionesUsuarios
    $sql="INSERT INTO valoracionesUsuarios (idUsuarioOrigen, idUsuarioDestino, valoracion, comentario) "
        ."VALUES (".$_SESSION['uid'].",".$uid.",".$estrellas.",'".$comentario."')";
    
    if (mysql_query($sql, conectarUsuarios())) {
        
        //Query para el cálculo de la media y de la cantidad
        $sql2 ="SELECT count(idUsuarioDestino) AS cantidadValoraciones,
                  avg(valoracion) valoracionMedia
           FROM valoracionesUsuarios WHERE idUsuarioDestino = ".$uid;
    
        $result = mysql_query($sql2, conectarUsuarios());
        if ($datos = mysql_fetch_array($result)) {
             //Query para actualizar los campos de valoraciones en la tabla usuarios
            $sql3 = "UPDATE usuarios SET "
                  ." valoracionMedia = ".round($datos['valoracionMedia'])
                  .", cantidadValoraciones = ".$datos['cantidadValoraciones']
                  ." WHERE idUsuario = ".$uid;
             if (mysql_query($sql3, conectarUsuarios())) {
               return true;
            } else {
                echo 'ERROR al valorar';
            }
            return true;
        } else {
            return false;
        }
        return true;
    } else {
        echo 'ERROR AL INSERTAR LOS CONTACTOS';
    }
}

function obtenerValoraciones($uid) {
    
    try {
        
        $sql = "SELECT valoracionesUsuarios.idvaloracion,
                       valoracionesUsuarios.idUsuarioOrigen,
                       valoracionesUsuarios.comentario,
                       valoracionesUsuarios.valoracion,
                       valoracionesUsuarios.fecha,
                       usuarios.nombreArtistico,
                       usuarios.nombre,
                       usuarios.apellidos,
                       usuarios.foto,
                       usuarios.valoracionMedia,
                       usuarios.cantidadValoraciones 
                FROM valoracionesUsuarios
                INNER JOIN usuarios on usuarios.idUsuario = valoracionesUsuarios.idUsuarioOrigen
                WHERE valoracionesUsuarios.idUsuarioDestino = ".$uid." ORDER BY valoracionesUsuarios.fecha DESC";

        $result = mysql_query($sql, conectarUsuarios()); 

        $i=0;
        while ($valoracion = mysql_fetch_array($result)) {
           $misValoraciones[$i] = $valoracion;
           $i++;
        }
        
        return $misValoraciones;    
        
    }catch (Exception $e) {
        
        return false;
        
    }
}

function obtenerValoracionesEnviadas($uid) {
    
    try {
        
        $sql = "SELECT valoracionesUsuarios.idUsuarioDestino,
                       valoracionesUsuarios.comentario,
                       valoracionesUsuarios.valoracion,
                       valoracionesUsuarios.fecha,
                       usuarios.nombre,
                       usuarios.apellidos,
                       usuarios.foto,
                       usuarios.valoracionMedia,
                       usuarios.cantidadValoraciones 
                FROM valoracionesUsuarios
                INNER JOIN usuarios on usuarios.idUsuario = valoracionesUsuarios.idUsuarioDestino
                WHERE valoracionesUsuarios.idUsuarioOrigen = ".$uid." ORDER BY valoracionesUsuarios.fecha DESC";

        $result = mysql_query($sql, conectarUsuarios()); 

        $i=0;
        while ($valoracion = mysql_fetch_array($result)) {
           $misValoraciones[$i] = $valoracion;
           $i++;
        }
        
        return $misValoraciones;    
        
    }catch (Exception $e) {
        
        return false;
        
    }
}

function actualizarSocial($social,$uid) {
    $sql = "UPDATE usuarios SET"
            . " facebook = '".$social['facebook']."',"
            . " twitter = '".$social['twitter']."',"
            . " googleplus = '".$social['googleplus']."',"
            . " linkedin = '".$social['linkedin']."',"
            . " pinterest = '".$social['pinterest']."',"
            . " youtube = '".$social['youtube']."'"
            . "WHERE idUsuario = ".$uid;
    
    if (mysql_query($sql, conectarUsuarios())) {
       return true;
    } else {
       return false;
    }
}

function buscarUsuario($datos,$uid) {
    try {
        
        $sql = "SELECT DISTINCT usuarios.idUsuario,
				usuarios.nombre as nombreUsuario, 
				apellidos, 
                                usuarios.nombreArtistico,
                                usuarios.idSexo,
				usuarios.descripcion, 
                                usuarios.foto,
                                usuarios.valoracionMedia,
                                usuarios.cantidadValoraciones,
				provincias.nombre as nombreProvincia, 
				municipios.nombre as nombreMunicipio,
				(YEAR(CURDATE())-YEAR(fechaNacimiento))-(RIGHT(CURDATE(),5)<RIGHT(fechaNacimiento,5))AS edad 
            FROM usuarios".  
            " INNER JOIN municipios on municipios.idMunicipio = usuarios.idMunicipio".
            " INNER JOIN provincias on provincias.idProvincia = municipios.idProvincia";
            if ($datos['rol'] != 0 ) {
             $sql = $sql." INNER JOIN usuariosRoles on usuariosRoles.idUsuario = usuarios.idUsuario INNER JOIN roles on roles.idRol = usuariosRoles.idRol";
            }
            $sql = $sql." where usuarios.idUsuario <> ".$uid." and usuarios.idUsuario <> 0 and usuarios.baja = '0' and usuarios.activo = 'SI' and usuarios.bloqueado = '0' and ".
            " usuarios.nombre like '%".$datos['nombre']."%'".  
            " and apellidos like '%".$datos['apellidos']."%'";
            if (($datos['edad1'] > 0)&&($datos['edad2']>0)){
                $sql = $sql." and (YEAR(CURDATE())-YEAR(fechaNacimiento))-(RIGHT(CURDATE(),5)<RIGHT(fechaNacimiento,5)) between ".$datos['edad1']." and ".$datos['edad2'];
            }
            if ($datos['idMunicipio'] != 0 ) {
                $sql = $sql." and usuarios.idMunicipio = ".$datos['idMunicipio'];
            }    
            if ($datos['idProvincia'] != 0 ) {
                $sql = $sql." and usuarios.idProvincia = ".$datos['idProvincia'];
            }
            if ($datos['plan'] != 0 ) {
                $sql = $sql." and roles.idTipoPlan = ".$datos['plan'];
            }
            if ($datos['rol'] != 0 ) {
                $sql = $sql." and usuariosRoles.idRol = ".$datos['rol'];
            }
            
            $result = mysql_query($sql, conectarUsuarios());       
            $i=0;
            while ($usuario = mysql_fetch_array($result)) {
               $usuarios[$i] = $usuario;
               $i++;
            }
            
            return $usuarios;
    } catch (Exception $ex) {
        
            echo 'error '.$ex;
            return false;
    }
    
        
}

Function insertarNotificacion($cod, $mensaje, $pid, $oid, $uidd, $uido) {
    try {
        
        $sql = "INSERT INTO notificaciones (cod, mensaje, idProyecto, idOferta, idUsuarioOrigen, idUsuarioDestino) "
            . "VALUES (".$cod.",'".$mensaje."',".$pid.",".$oid.",".$uido.",".$uidd.")";
        
        if (mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            echo 'ERROR al insertar';
            return false;
        }
    } catch (Exception $ex) {
        echo 'error '.$ex;
        return false;
    }
    
    
}

function verNotifiaciones($uid) {
    try {
        
        //Comenzamos la transacción, ya que vamos a tener acceso a más de una tabla consecutivamente.
        $sql = "START TRANSACTION; ";
        mysql_query($sql, conectarUsuarios());
        
        //Seleccionamos todas las notificaciones nuevas.
        $sql = "SELECT * FROM notificaciones ".
               " INNER JOIN usuarios ON notificaciones.idUsuarioOrigen = usuarios.idUsuario ".
               " WHERE idUsuarioDestino = ".$uid.
               " ORDER by fecha DESC";
        $result = mysql_query($sql, conectarUsuarios());       
        $i=0;
        while ($notificacion = mysql_fetch_array($result)) {
           $notificaciones[$i] = $notificacion;
           $i++;
        }
        
        //Pasamos todos las notificaciones nuevas a (nueva=0)
        $sql = "UPDATE notificaciones SET nueva = 0 WHERE idUsuarioDestino = ".$uid;
        mysql_query($sql,conectarUsuarios());
            
        //Si todo está correcto, hacemos Commit y cerramos la transacción.
        $sql = " COMMIT; ";
        
        
        mysql_query($sql,conectarUsuarios());
        return $notificaciones;
    
    } catch (Exception $ex) {
        //Si ha habido algún error, desacemos las consultas lanzadas durante la transacción.
        $sql = " ROLLBACK; ";
        mysql_query($sql,conectarUsuarios());
        echo 'error durante la transacción '.$e;
        return null;
    }
   
}

function comprobarPass($pass,$uid) {
    try {
        $sql = "SELECT COUNT(*) as ok FROM usuarios WHERE idUsuario =".$uid." AND pass='".$pass."'";
        $result = mysql_query($sql, conectarUsuarios());
        $ok = mysql_fetch_array($result);
        if ($ok['ok'] > 0) {
            return true;
        } else {
            return false;
        }
    } catch (exception $d) {
        echo 'error al comprobar contraseña';
        return false;
    }
    
}

function cambiarPass($pass,$uid) {
    try {
        $sql = "UPDATE usuarios SET pass='".$pass."' WHERE idUsuario=".$uid;
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (exception $d) {
        echo 'error al cambiar contraseña: '.$d;
        return false;
    }
    
}

function eliminarContacto ($uid1, $uid2) {
    try {
        $sql = "DELETE FROM contactos WHERE (idUsuario1 = ".$uid1." AND idUsuario2 = ".$uid2.") OR (idUsuario1 = ".$uid2." AND idUsuario2 = ".$uid1.")";
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR: ".$ex;
    }
    
}

function eliminarNotificacion ($nid) {
    try {
        $sql = "DELETE FROM notificaciones WHERE idNotificacion = ".$nid;
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR: ".$ex;
    }
}

function eliminarNotificaciones ($uid) {
    try {
        $sql = "DELETE FROM notificaciones WHERE idUsuarioDestino = ".$uid;
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR: ".$ex;
    }
}

function usuariosRegistrados() {
    try {
        $sql = "SELECT count(*) as total FROM usuarios";
        $result = mysql_query($sql, conectarUsuarios());       

        if ($usuarios = mysql_fetch_array($result)) {
            return $usuarios;
        } else {
            echo "ERROR!";
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function usuariosNoActivados() {
     try {
        $sql = "SELECT count(*) as total FROM usuarios WHERE activo = 'NO'";
        $result = mysql_query($sql, conectarUsuarios());       

        if ($usuarios = mysql_fetch_array($result)) {
            return $usuarios['total'];
        } else {
            echo "ERROR!";
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function usuariosActivados() {
     try {
        $sql = "SELECT count(*) as total FROM usuarios WHERE activo = 'SI'";
        $result = mysql_query($sql, conectarUsuarios());       

        if ($usuarios = mysql_fetch_array($result)) {
            return $usuarios['total'];
        } else {
            echo "ERROR!";
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function totalHombres() {
     try {
        $sql = "SELECT count(*) as total FROM usuarios WHERE idSexo = 1";
        $result = mysql_query($sql, conectarUsuarios());       

        if ($usuarios = mysql_fetch_array($result)) {
            return $usuarios['total'];
        } else {
            echo "ERROR!";
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function totalUsuariosBloqueados() {
    try {
        
        $sql = "SELECT count(*) as total FROM usuarios WHERE bloqueado = 1";
        $result = mysql_query($sql, conectarUsuarios());       

        if ($usuarios = mysql_fetch_array($result)) {
            return $usuarios['total'];
        } else {
            echo "ERROR!";
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function totalUsuariosBaja() {
    try {
        $sql = "SELECT count(*) as total FROM usuarios WHERE baja = 1";
        $result = mysql_query($sql, conectarUsuarios());       

        if ($usuarios = mysql_fetch_array($result)) {
            return $usuarios['total'];
        } else {
            echo "ERROR!";
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function totalMujeres() {
     try {
        $sql = "SELECT count(*) as total FROM usuarios WHERE idSexo = 2";
        $result = mysql_query($sql, conectarUsuarios());       

        if ($usuarios = mysql_fetch_array($result)) {
            return $usuarios['total'];
        } else {
            echo "ERROR!";
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}


function usuariosMasActivos() {
    try {
        $sql = "select usuarios.nombre, 
                        usuarios.apellidos,
                        usuarios.idUsuario,
                        usuarios.foto,
                        count(distinct planes.idPlan) as totalProyectos, 
                        count(distinct ofertas.idOferta) as totalOfertas,
                        (count(distinct planes.idPlan) +count(distinct ofertas.idOferta)) as total
                from usuarios 
                left join planes on usuarios.idUsuario = planes.idUsuario
                left join ofertas on usuarios.idUsuario = ofertas.idUsuarioCreador
                group by usuarios.idUsuario 
                order by total desc 
                limit 0,10";
        
        $result = mysql_query($sql, conectarOfertas()); 
        $i = 0;

        while ($usuario = mysql_fetch_array($result)) {
             $usuarios[$i] = $usuario;
             $i++;
        } 
        
        return $usuarios;
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function obtenerImagenPerfil($uid) {
    $sql="SELECT foto FROM usuarios where idUsuario = ".$uid;
    $result = mysql_query($sql, conectarUsuarios());       
    $imagenOld = mysql_fetch_array($result);
    return $imagenOld['foto'];
}

function cambiarImagenPerfil($uid, $imagen) {
   
//    unlink("../".$imagenOld['imagen']);
    $sql = "UPDATE usuarios SET foto = '".$imagen."' WHERE idUsuario = ".$uid;
    if (mysql_query($sql, conectarUsuarios())){
        return true;
    } else {
        return false;
    }
}

function obtenerVisibilidadTelefono ($uid) {
    try {        
        $sql = "SELECT * FROM telefono";
        $result = mysql_query($sql, conectarOfertas()); 
        $i = 0;

        while ($telefono = mysql_fetch_array($result)) {
             $telefonos[$i] = $telefono;
             $i++;
        } 

        return $telefonos;
    } catch (Exception $ex) {
        echo $ex;
    }
}

function insertarSolicitudContacto($uid1, $uid2) {
    try {
        $sql = "INSERT INTO solicitudesContacto(idUsuarioSolicitante, idUsuarioSolicitado) VALUES($uid1, $uid2)";
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR: ".$ex;
    }
}

function contactoSolicitado ($uid1, $uid2) {
    try {
        $sql = "SELECT * FROM solicitudesContacto WHERE idUsuarioSolicitante = ".$uid1." AND idUsuarioSolicitado = ".$uid2;
        $result = mysql_query($sql, conectarUsuarios());
        if (mysql_fetch_array($result)) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR ".$ex;
    }
    
}

function obtenerSolicitudesContacto ($uid) {
    try {
        $sql = "SELECT * FROM solicitudesContacto
                INNER JOIN usuarios on solicitudesContacto.idUsuarioSolicitante = usuarios.idUsuario
                WHERE idUsuarioSolicitado = ".$uid." ORDER BY fecha DESC";

        $result = mysql_query($sql, conectarOfertas()); 
        $i = 0;

        while ($solicitud = mysql_fetch_array($result)) {
             $solicitudes[$i] = $solicitud;
             $i++;
        }
        
        $sql = "UPDATE solicitudesContacto SET nueva = 0 WHERE idUsuarioSolicitado = ".$uid;
        mysql_query($sql, conectarUsuarios());
           
        return $solicitudes;
        
    } catch (Exception $ex) {
        echo "ERROR: ".$ex;
    }
    
}

function borrarSolicitudesContacto($sid) {
    try {
        $sql = "DELETE FROM solicitudesContacto WHERE idSolicitudesContacto = ".$sid;
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR: ".$ex;
    }
    
}

function borrarTodasSolicitudesContacto($uid) {
    try {
        $sql = "DELETE FROM solicitudesContacto WHERE idUsuarioSolicitado = ".$uid;
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR: ".$ex;
    }
    
}

function solicitudesContactoNuevas($uid) {
    $sql = "SELECT count(*) AS nuevas FROM solicitudesContacto WHERE idUsuarioSolicitado = ".$uid." AND nueva = 1";
    $result = mysql_query($sql, conectarOfertas()); 
    $i = 0;

    if ($nuevas = mysql_fetch_array($result)) {
         return $nuevas['nuevas'];
    } else {
        return false;
    }
}

function obtenerMotivosBaja() {
    try {
        $sql="SELECT * FROM motivosBaja";
        $result = mysql_query($sql, conectarOfertas()); 
        $i=0;
        while ($motivo = mysql_fetch_array($result)) {
            $motivos[$i] =$motivo;
            $i++;
        }
       
        return $motivos;
    } catch (Exception $ex) {
        echo 'ERROR: '.$ex;
    }
}

function bajaUsuario($uid,$motivo,$descripcion) {
    try {
        //Insertamos la información pertinente en el historial de bajas
        $sql="INSERT INTO usuariosBaja (idUsuario,idMotivoBaja,descripcion) VALUES(".$uid.",".$motivo.",'".$descripcion."')";

        //Acutalizamos el perfil, poniendo BAJA a 1 -> Hecho con TRIGGER sobre usuariosBajas
        //Eliminamos todas sus solicitudes y ofertas, pero mantenemos los proyectos, que se quedarán en stand by  -> Hecho con TRIGGER sobre usuariosBajas

         if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR: ".$ex;
    }
}

function cuentaActiva($mail) {
    try {
        $sql = "SELECT * FROM usuarios WHERE email = '".$mail."' AND activo = 'SI'";
        $result = mysql_query($sql, conectarUsuarios());
        if ($cuenta = mysql_fetch_array($result)){     
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function usuarioBaja($mail) {
    try {
        $sql = "SELECT * FROM usuarios WHERE email = '".$mail."' AND baja = 1";
        $result = mysql_query($sql, conectarUsuarios());
        if ($cuenta = mysql_fetch_array($result)){     
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function obtenerNombre($email) {
    try {
        $sql = "Select nombre, apellidos from usuarios where email = ".$email;
        $result = mysql_query($sql, conectarUsuarios());
        $cuenta = mysql_fetch_array($result);
        if (count($cuenta) > 0 ){     
            return $cuenta['nombre'];
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function bloquearUsuario($uid, $dias, $denuncia) {
    try {
        
        //Comenzamos la transacción.
        $sql = "START TRANSACTION; ";
        mysql_query($sql, conectarUsuarios());
        
        if ($dias == 0) {
            $sql = "UPDATE usuarios SET fechaBloqueo = '9999-12-31', bloqueado = 1 WHERE idUsuario = ".$uid;
        } else {
            $sql = "UPDATE usuarios SET fechaBloqueo = DATE_ADD(NOW(), INTERVAL ".$dias." DAY), bloqueado = 1 WHERE idUsuario = ".$uid;
        }
        if ($result = mysql_query($sql, conectarUsuarios())) {
            $sql = "INSERT INTO usuariosBloqueos(idUsuario, idDenuncia) VALUES (".$uid.",".$denuncia.")";
            if ($result = mysql_query($sql, conectarUsuarios())) {
                //Si todo está correcto, hacemos Commit y cerramos la transacción.
                $sql = " COMMIT; ";
                mysql_query($sql,conectarUsuarios());

                return true;
            } else {
                //Si ha habido algún error, desacemos las consultas lanzadas durante la transacción.
                $sql = " ROLLBACK; ";
                mysql_query($sql,conectarUsuarios());
                return false;
            }
        } else {
            //Si ha habido algún error, desacemos las consultas lanzadas durante la transacción.
            $sql = " ROLLBACK; ";
            mysql_query($sql,conectarUsuarios());
            return false;
        }
    } catch (Exception $ex) {
        //Si ha habido algún error, desacemos las consultas lanzadas durante la transacción.
        $sql = " ROLLBACK; ";
        mysql_query($sql,conectarUsuarios());
        echo "ERROR! ".$ex;
    }
}

function estaBloqueado($uid) {
    try {
        $sql = "SELECT idUsuario FROM usuarios WHERE bloqueado = 1 AND fechaBloqueo = '9999-12-31' AND idUsuario = ".$uid;
        $result = mysql_query($sql, conectarUsuarios());
        if ($cuenta = mysql_fetch_array($result)){     
            return "red";
        } else {
            $sql = "SELECT idUsuario FROM usuarios WHERE bloqueado = 1 AND fechaBloqueo > NOW() AND idUsuario = ".$uid;
            $result = mysql_query($sql, conectarUsuarios());
            if ($cuenta = mysql_fetch_array($result)){     
                return "orange";
            } else {
                $sql = "SELECT idUsuario FROM usuarios WHERE bloqueado = 1 AND idUsuario = ".$uid;
                $result = mysql_query($sql, conectarUsuarios());
                if ($cuenta = mysql_fetch_array($result)){     
                    return "silver";
                } else {
                    return "transparent";
                }
            }
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function estaBloqueadoEmail($email) {
    try {
        $sql = "SELECT fechaBloqueo FROM usuarios WHERE bloqueado = 1 AND email = '".$email."'";
        $result = mysql_query($sql, conectarUsuarios());
        if ($cuenta = mysql_fetch_array($result)){     
            return $cuenta['fechaBloqueo'];
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function desbloquearUsuario($email) {
    try {
        $sql = "UPDATE usuarios SET bloqueado = 0 WHERE email = '".$email."'";
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function obtenerUsuariosBloqueados() {
    try {
        $sql = "SELECT count(usuariosBloqueos.idUsuarioBloqueo) as totalBloqueos, 
		usuarios.nombre,
                usuarios.idUsuario,
		usuarios.apellidos,
                usuarios.bloqueado,
                usuarios.fechaBloqueo,
                usuarios.foto,
                usuarios.email
                FROM usuariosBloqueos
                INNER JOIN usuarios ON usuarios.idUsuario = usuariosBloqueos.idUsuario
                GROUP BY usuariosBloqueos.idUsuario
                ORDER BY totalBloqueos DESC, nombre, apellidos";
        $result = mysql_query($sql, conectarUsuarios());
        $i=0;
        while ($usuario = mysql_fetch_array($result)) {
           $usuarios[$i] = $usuario;
           $i++;
        } 
        
        return $usuarios;
        
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function obtenerBloqueosUsuarios($uid) {
    try {
        $sql = "select usuariosDenunciador.foto, 
                                usuariosDenunciador.nombre, 
                                usuariosDenunciador.apellidos, 
                                usuariosDenunciador.idUsuario,
                                denuncias.idDenuncia,
                                denuncias.fecha,
                                denuncias.comentario,
                                motivosDenuncia.descripcion as descripcionMotivo,
                                origenesDenuncia.descripcion as descripcionOrigen
                from usuariosBloqueos
                INNER JOIN usuarios ON usuarios.idUsuario = usuariosBloqueos.idUsuario
                INNER JOIN denuncias ON denuncias.idDenuncia = usuariosBloqueos.idDenuncia
                INNER JOIN usuarios as usuariosDenunciador ON usuariosDenunciador.idUsuario = denuncias.idUsuario
                INNER JOIN motivosDenuncia ON denuncias.idMotivoDenuncia = motivosDenuncia.idMotivoDenuncia
                INNER JOIN origenesDenuncia ON origenesDenuncia.idOrigenDenuncia = denuncias.idOrigenDenuncia
                WHERE usuariosBloqueos.idUsuario = ".$uid;
        $result = mysql_query($sql, conectarUsuarios());
        $i=0;
        while ($usuario = mysql_fetch_array($result)) {
           $usuarios[$i] = $usuario;
           $i++;
        } 
        
        return $usuarios;
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}
function insertarSolicitudCambioNombre($uid, $nombreNuevo, $apellidosNuevo, $motivo) {
    try {
        
        $sql = "INSERT INTO solicitudesCambioNombre (idUsuario, motivo, nombreNuevo, apellidosNuevo) VALUES (".$uid.",'".$motivo."','".$nombreNuevo."','".$apellidosNuevo."')";
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
    
}

function obtenerSolicitudCambioNombrePendiente($uid) {
    $sql = "SELECT * FROM solicitudesCambioNombre WHERE idUsuario = ".$uid." AND pendiente = 1";
    if ($result = mysql_query($sql, conectarUsuarios())) {
            if ($solicitud = mysql_fetch_array($result)) {
                return $solicitud;
            } else {
                return false;
            }
        } else {
            return false;
        }
}

//function cambioNombreUsuario($uid,$nombreNuevo,$apellidosNuevo) {
//    try {
//        $sql = "UPDATE usuarios SET nombre = '".$nombreNuevo."', apellidos = '".$apellidosNuevo."' WHERE idUsuario = ".$uid;
//        if ($result = mysql_query($sql, conectarUsuarios())) {
//            return true;
//        } else {
//            return false;
//        }
//    } catch (Exception $ex) {
//        echo "ERROR! ".$ex;
//    }
//}

function obtenerSolicitudesCambioNombrePendientes() {
    try {
        $sql="SELECT usuarios.nombre,
		usuarios.apellidos,
		usuarios.idUsuario,
		usuarios.foto,
		usuarios.email,
		solicitudesCambioNombre.nombreNuevo,
		solicitudesCambioNombre.apellidosNuevo,
		solicitudesCambioNombre.motivo,
		solicitudesCambioNombre.fecha,
                solicitudesCambioNombre.idSolicitudCambioNombre
            FROM solicitudesCambioNombre 
            INNER JOIN usuarios ON usuarios.idUsuario = solicitudesCambioNombre.idUsuario
            WHERE pendiente = 1
            ORDER BY fecha DESC";
        $result = mysql_query($sql, conectarUsuarios());
        $i=0;
        while ($solicitud = mysql_fetch_array($result)) {
           $solicitudes[$i] = $solicitud;
           $i++;
        } 
        return $solicitudes;
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function obtenerSolicitudesCambioNombre($uid) {
    try {
        $sql="SELECT usuarios.nombre,
		usuarios.apellidos,
		usuarios.idUsuario,
		usuarios.foto,
		usuarios.email,
		solicitudesCambioNombre.nombreNuevo,
		solicitudesCambioNombre.apellidosNuevo,
		solicitudesCambioNombre.motivo,
		solicitudesCambioNombre.fecha,
                solicitudesCambioNombre.pendiente,
                solicitudesCambioNombre.cambio,
                solicitudesCambioNombre.idSolicitudCambioNombre
            FROM solicitudesCambioNombre 
            INNER JOIN usuarios ON usuarios.idUsuario = solicitudesCambioNombre.idUsuario
            WHERE solicitudesCambioNombre.idUsuario = ".$uid." ".
            "ORDER BY fecha DESC";
        $result = mysql_query($sql, conectarUsuarios());
        $i=0;
        while ($solicitud = mysql_fetch_array($result)) {
           $solicitudes[$i] = $solicitud;
           $i++;
        } 
        return $solicitudes;
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function obtenerTotalSolicitudesCambioNombre() {
    $sql = "SELECT count(*) as total FROM solicitudesCambioNombre WHERE solicitudesCambioNombre.pendiente = 1";
    $result = mysql_query($sql, conectarUsuarios());
    if ($total = mysql_fetch_array($result)) {
        return $total['total'];
    } else {
        return false;
    }
}

function cambiarNombreUsuario($sid, $uid, $nombreNuevo, $apellidosNuevo) {
    try {
        //Comenzamos la transacción.
        $sql = "START TRANSACTION; ";
        mysql_query($sql, conectarUsuarios());
        
        $sql = "UPDATE solicitudesCambioNombre SET pendiente = 0, cambio = 1 WHERE idSolicitudCambioNombre = ".$sid;
        if ($result = mysql_query($sql, conectarUsuarios())) {
             $sql = "UPDATE usuarios SET nombre = '".$nombreNuevo."',apellidos = '".$apellidosNuevo."' WHERE idUsuario = ".$uid;
            if ($result = mysql_query($sql, conectarUsuarios())) {
                //Si todo está correcto, hacemos Commit y cerramos la transacción.
                $sql = " COMMIT; ";
                mysql_query($sql,conectarUsuarios());
                return true;
            } else {
                //Si ha habido algún error, desacemos las consultas lanzadas durante la transacción.
                $sql = " ROLLBACK; ";
                mysql_query($sql,conectarUsuarios());
                echo "ERROR! ".$ex;
                return false;
            }
        } else {
            //Si ha habido algún error, desacemos las consultas lanzadas durante la transacción.
            $sql = " ROLLBACK; ";
            mysql_query($sql,conectarUsuarios());
            echo "ERROR! ".$ex;
            return false;
        }
       
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function noCambiarNombre($idSolicitudCambio) {
    try {
        $sql = "UPDATE solicitudesCambioNombre SET pendiente = 0, cambio = 0 WHERE idSolicitudCambioNombre = ".$idSolicitudCambio;
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
}

function hacerAdministrador($uid) {
    try {
        $sql = "UPDATE usuarios SET idPerfil = 0 WHERE idUsuario = ".$uid;
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
    
}

function deshacerAdministrador($uid) {
    try {
        $sql = "UPDATE usuarios SET idPerfil = 1 WHERE idUsuario = ".$uid;
        if ($result = mysql_query($sql, conectarUsuarios())) {
            return true;
        } else {
            return false;
        }    
    } catch (Exception $ex) {
        echo "ERROR! ".$ex;
    }
    
}